1. Technical Field
The present invention generally relates to supercomputing systems. More specifically, the present invention relates to automatically allocating resources in supercomputing systems.
2. Description of the Related Art
The term high performance computing (HPC) or supercomputing has typically been used to refer to a parallel computing system that includes multiple processors linked together with commercially available interconnects. Usually, computing systems that operate at or above the teraflops (109 floating point operations/second) region are considered HPC systems. HPC systems increasingly dominate the world of supercomputing due to their flexibility, power, and relatively low cost per operation. HPC has commonly been associated scientific research and engineering applications. Recently, HPC has been applied to business uses of cluster-based supercomputers, e.g., data warehouses, line-of-business applications, and transaction processing. A computer cluster is a group of loosely coupled computers that closely work together. The components of a computer cluster are frequently connected to each other through fast local area networks (LANs). Computer clusters are usually deployed to improve performance and/or availability over that provided by a single computer, while typically being much more cost-effective than single computers of comparable speed and/or availability.
A number of commercially available software applications are known that perform job scheduling for computer systems. For example, Portable Batch System™ is a software application that performs job scheduling. A primary task of Portable Batch System™ is to allocate batch jobs among available computing resources. Portable Batch System™ is supported as a job scheduler mechanism by several meta schedulers, which are designed to optimize computational workloads by combining multiple distributed resource managers into a single aggregated manager, allowing batch jobs to be directed to a best location for execution. As another example, LoadLeveler™ is a software application that performs job scheduling for batch jobs, while attempting to match job requirements with a best available computer resource for execution. As yet another example, Load Sharing Facility™ is another software application that performs job scheduling.
Typically, there can be a data resolution or fidelity component or attribute associated with processing a data set processed by supercomputing resources. For example, the data set can include a finer resolution than what is being processed by the supercomputing resources. Based on the resolution chosen, the processing load of the data set can be distributed among the supercomputing resources. For instance, the processing load of the data set can be distributed among the supercomputing resources using one or more tools described above. However, existing methods and/or systems do not provide for instances where the supercomputing resources can automatically determine and respond to an event where one or more portions of the data set should be processes with greater fidelity or resolution. Typically, human interaction and/or intervention is used to change the resolution of portions of the data set and re-distribute the workload.